// pages/site-guide/site-guide.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    // 推荐机构列表
    recommendedInstitutions: [
      {
        name: '北京市红十字会',
        address: '地址:北京市东城区北新桥三条8号',
        phone: '电话:010-64040441'
      },
      {
        name: '上海市红十字会',
        address: '地址:上海市黄浦区延安东路34号',
        phone: '电话:021-63231117'
      },
      {
        name: '广州市红十字会',
        address: '地址:广州市越秀区麓景路狮带岗中1号',
        phone: '电话:020-83598564'
      },
      {
        name: '深圳市红十字会',
        address: '地址:深圳市福田区上步中路1003号',
        phone: '电话:0755-25601682'
      },
      {
        name: '南京市红十字会',
        address: '地址:南京市玄武区成贤街43号',
        phone: '电话:025-83612900'
      },
      {
        name: '杭州市红十字会',
        address: '地址:杭州市上城区孝女路2号',
        phone: '电话:0571-87061200'
      },
      {
        name: '北京协和医院',
        address: '地址:北京市东城区东单帅府园1号',
        phone: '电话:010-69156114'
      },
      {
        name: '上海交通大学医学院附属瑞金医院',
        address: '地址:上海市黄浦区瑞金二路197号',
        phone: '电话:021-64370045'
      },
      {
        name: '中山大学附属第一医院',
        address: '地址:广州市越秀区中山二路1号',
        phone: '电话:020-28823388'
      }
    ],
    // 搜索相关数据
    searchKeyword: '',
    selectedProvince: '',
    selectedCity: '',
    selectedDistrict: '',
    selectedType: '',
    // 省份列表
    provinces: [
      { 
        name: '北京市', 
        cities: [
          { name: '东城区', districts: ['东华门街道', '景山街道', '交道口街道', '安定门街道', '北新桥街道', '东四街道', '朝阳门街道', '建国门街道', '东直门街道', '和平里街道', '前门街道', '崇文门外街道', '东花市街道', '龙潭街道', '体育馆路街道', '天坛街道', '永定门外街道'] },
          { name: '西城区', districts: ['西长安街街道', '新街口街道', '月坛街道', '展览路街道', '德胜街道', '金融街街道', '什刹海街道', '大栅栏街道', '天桥街道', '椿树街道', '陶然亭街道', '广安门内街道', '牛街街道', '白纸坊街道', '广安门外街道'] },
          { name: '朝阳区', districts: ['建外街道', '朝外街道', '呼家楼街道', '三里屯街道', '左家庄街道', '香河园街道', '和平街街道', '安贞街道', '亚运村街道', '小关街道', '酒仙桥街道', '麦子店街道', '团结湖街道', '六里屯街道', '八里庄街道', '双井街道', '劲松街道', '潘家园街道', '垡头街道', '南磨房地区', '高碑店地区', '将台地区', '太阳宫地区', '大屯地区', '望京地区', '小红门地区', '十八里店地区', '平房地区', '东风地区', '奥运村地区', '来广营地区', '常营地区', '三间房地区', '管庄地区', '金盏地区', '孙河地区', '崔各庄地区', '东坝地区', '黑庄户地区', '豆各庄地区', '王四营地区', '首都机场街道'] },
          { name: '丰台区', districts: ['右安门街道', '太平桥街道', '西罗园街道', '大红门街道', '南苑街道', '东高地街道', '东铁匠营街道', '卢沟桥街道', '丰台街道', '新村街道', '长辛店街道', '云岗街道', '方庄地区', '宛平城地区', '马家堡街道', '和义街道', '长辛店镇', '王佐镇', '卢沟桥乡', '花乡', '南苑乡'] },
          { name: '石景山区', districts: ['八宝山街道', '老山街道', '八角街道', '古城街道', '苹果园街道', '金顶街街道', '广宁街道', '五里坨街道', '鲁谷街道'] },
          { name: '海淀区', districts: ['万寿路街道', '永定路街道', '羊坊店街道', '甘家口街道', '八里庄街道', '紫竹院街道', '北下关街道', '北太平庄街道', '学院路街道', '中关村街道', '海淀街道', '青龙桥街道', '清华园街道', '燕园街道', '香山街道', '清河街道', '花园路街道', '西三旗街道', '马连洼街道', '田村路街道', '上地街道', '万柳地区', '东升地区', '曙光街道', '温泉地区', '四季青地区', '西北旺地区', '苏家坨地区', '上庄地区'] }
        ] 
      },
      { 
        name: '上海市', 
        cities: [
          { name: '黄浦区', districts: ['南京东路街道', '外滩街道', '半淞园路街道', '小东门街道', '豫园街道', '老西门街道', '五里桥街道', '打浦桥街道', '淮海中路街道', '瑞金二路街道'] },
          { name: '徐汇区', districts: ['天平路街道', '湖南路街道', '斜土路街道', '枫林路街道', '长桥街道', '田林街道', '虹梅路街道', '康健新村街道', '徐家汇街道', '凌云路街道', '龙华街道', '漕河泾街道', '华泾镇'] },
          { name: '长宁区', districts: ['华阳路街道', '江苏路街道', '新华路街道', '周家桥街道', '天山路街道', '仙霞新村街道', '虹桥街道', '程家桥街道', '北新泾街道', '新泾镇'] },
          { name: '静安区', districts: ['江宁路街道', '石门二路街道', '南京西路街道', '静安寺街道', '曹家渡街道', '天目西路街道', '北站街道', '宝山路街道', '共和新路街道', '大宁路街道', '彭浦新村街道', '临汾路街道', '芷江西路街道', '彭浦镇'] },
          { name: '普陀区', districts: ['曹杨新村街道', '长风新村街道', '长寿路街道', '甘泉路街道', '石泉路街道', '宜川路街道', '真如镇街道', '长征镇', '桃浦镇'] },
          { name: '虹口区', districts: ['欧阳路街道', '曲阳路街道', '广中路街道', '嘉兴路街道', '凉城新村街道', '四川北路街道', '北外滩街道', '江湾镇街道'] }
        ] 
      },
      { 
        name: '广东省', 
        cities: [
          { name: '广州市', districts: ['越秀区', '海珠区', '荔湾区', '天河区', '白云区', '黄埔区', '番禺区', '花都区', '南沙区', '从化区', '增城区'] },
          { name: '深圳市', districts: ['福田区', '罗湖区', '南山区', '宝安区', '龙岗区', '盐田区', '龙华区', '坪山区', '光明区'] },
          { name: '珠海市', districts: ['香洲区', '斗门区', '金湾区'] },
          { name: '汕头市', districts: ['金平区', '龙湖区', '濠江区', '潮阳区', '潮南区', '澄海区'] },
          { name: '佛山市', districts: ['禅城区', '南海区', '顺德区', '三水区', '高明区'] },
          { name: '韶关市', districts: ['浈江区', '武江区', '曲江区', '始兴县', '仁化县', '翁源县', '新丰县', '乐昌市', '南雄市'] }
        ] 
      },
      { 
        name: '江苏省', 
        cities: [
          { name: '南京市', districts: ['玄武区', '秦淮区', '建邺区', '鼓楼区', '浦口区', '栖霞区', '雨花台区', '江宁区', '六合区', '溧水区', '高淳区'] },
          { name: '无锡市', districts: ['梁溪区', '锡山区', '惠山区', '滨湖区', '新吴区', '江阴市', '宜兴市'] },
          { name: '徐州市', districts: ['鼓楼区', '云龙区', '贾汪区', '泉山区', '铜山区', '丰县', '沛县', '睢宁县', '新沂市', '邳州市'] },
          { name: '常州市', districts: ['天宁区', '钟楼区', '新北区', '武进区', '金坛区', '溧阳市'] },
          { name: '苏州市', districts: ['姑苏区', '虎丘区', '吴中区', '相城区', '吴江区', '常熟市', '张家港市', '昆山市', '太仓市'] },
          { name: '南通市', districts: ['崇川区', '港闸区', '通州区', '如东县', '启东市', '如皋市', '海门市', '海安市'] }
        ] 
      },
      { 
        name: '浙江省', 
        cities: [
          { name: '杭州市', districts: ['上城区', '下城区', '江干区', '拱墅区', '西湖区', '滨江区', '萧山区', '余杭区', '富阳区', '临安区', '桐庐县', '淳安县', '建德市'] },
          { name: '宁波市', districts: ['海曙区', '江北区', '北仑区', '镇海区', '鄞州区', '奉化区', '象山县', '宁海县', '余姚市', '慈溪市'] },
          { name: '温州市', districts: ['鹿城区', '龙湾区', '瓯海区', '洞头区', '永嘉县', '平阳县', '苍南县', '文成县', '泰顺县', '瑞安市', '乐清市', '龙港市'] },
          { name: '嘉兴市', districts: ['南湖区', '秀洲区', '嘉善县', '海盐县', '海宁市', '平湖市', '桐乡市'] },
          { name: '湖州市', districts: ['吴兴区', '南浔区', '德清县', '长兴县', '安吉县'] },
          { name: '绍兴市', districts: ['越城区', '柯桥区', '上虞区', '新昌县', '诸暨市', '嵊州市'] }
        ] 
      }
    ],
    // 机构类型
    institutionTypes: ['红十字会', '医院', '医学院校', '其他机构'],
    // 搜索结果
    searchResults: [],
    showSearchResults: false,
    // 当前可选的区县列表
    currentDistricts: []
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    // 页面加载时的初始化
  },

  /**
   * 搜索关键词输入
   */
  onSearchInput(e) {
    this.setData({
      searchKeyword: e.detail.value
    });
  },

  /**
   * 执行搜索
   */
  onSearch() {
    const { searchKeyword, selectedProvince, selectedCity, selectedDistrict, selectedType } = this.data;
    
    // 模拟搜索逻辑
    let results = [];
    
    if (searchKeyword || selectedProvince || selectedCity || selectedDistrict || selectedType) {
      // 这里可以根据实际需求调用API进行搜索
      results = this.data.recommendedInstitutions.filter(item => {
        let match = true;
        
        // 关键词搜索
        if (searchKeyword) {
          const keyword = searchKeyword.toLowerCase();
          const nameMatch = item.name.toLowerCase().includes(keyword);
          const addressMatch = item.address.toLowerCase().includes(keyword);
          if (!nameMatch && !addressMatch) {
            match = false;
          }
        }
        
        // 省份筛选
        if (selectedProvince && !item.address.includes(selectedProvince)) {
          match = false;
        }
        
        // 城市筛选
        if (selectedCity && !item.address.includes(selectedCity)) {
          match = false;
        }
        
        // 区县筛选
        if (selectedDistrict && !item.address.includes(selectedDistrict)) {
          match = false;
        }
        
        // 机构类型筛选
        if (selectedType) {
          if (selectedType === '红十字会' && !item.name.includes('红十字会')) {
            match = false;
          } else if (selectedType === '医院' && !item.name.includes('医院')) {
            match = false;
          } else if (selectedType === '医学院校' && !item.name.includes('医学院')) {
            match = false;
          }
        }
        
        return match;
      });
    }
    
    this.setData({
      searchResults: results,
      showSearchResults: true
    });
    
    // 显示搜索结果提示
    if (results.length === 0) {
      wx.showToast({
        title: '暂无搜索结果',
        icon: 'none'
      });
    } else {
      wx.showToast({
        title: `找到${results.length}个机构`,
        icon: 'success'
      });
    }
  },

  /**
   * 选择省份
   */
  onProvinceChange(e) {
    const index = e.detail.value;
    const province = this.data.provinces[index];
    this.setData({
      selectedProvince: province.name,
      selectedCity: '',
      selectedDistrict: ''
    });
  },

  /**
   * 选择城市
   */
  onCityChange(e) {
    const index = e.detail.value;
    const province = this.data.provinces.find(p => p.name === this.data.selectedProvince);
    if (province && province.cities[index]) {
      const city = province.cities[index];
      this.setData({
        selectedCity: city.name,
        selectedDistrict: '',
        currentDistricts: city.districts || []
      });
    }
  },

  /**
   * 选择区县
   */
  onDistrictChange(e) {
    const index = e.detail.value;
    const province = this.data.provinces.find(p => p.name === this.data.selectedProvince);
    const city = province?.cities.find(c => c.name === this.data.selectedCity);
    if (city && city.districts[index]) {
      this.setData({
        selectedDistrict: city.districts[index]
      });
    }
  },

  /**
   * 选择机构类型
   */
  onTypeChange(e) {
    const index = e.detail.value;
    this.setData({
      selectedType: this.data.institutionTypes[index]
    });
  },

  /**
   * 清除搜索条件
   */
  onClearSearch() {
    this.setData({
      searchKeyword: '',
      selectedProvince: '',
      selectedCity: '',
      selectedDistrict: '',
      selectedType: '',
      searchResults: [],
      showSearchResults: false,
      currentDistricts: []
    });
    
    wx.showToast({
      title: '已清除搜索条件',
      icon: 'success'
    });
  },

  /**
   * 拨打电话
   */
  onCallPhone(e) {
    const phone = e.currentTarget.dataset.phone;
    wx.makePhoneCall({
      phoneNumber: phone.replace('电话:', ''),
      success: () => {
        console.log('拨打电话成功');
      },
      fail: () => {
        wx.showToast({
          title: '拨打电话失败',
          icon: 'none'
        });
      }
    });
  },

  /**
   * 查看机构详情
   */
  onInstitutionDetail(e) {
    const institution = e.currentTarget.dataset.institution;
    wx.navigateTo({
      url: `/pages/site-guide/institution-detail?institution=${encodeURIComponent(JSON.stringify(institution))}`
    });
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
    // 刷新数据
    setTimeout(() => {
      wx.stopPullDownRefresh();
    }, 1000);
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {
    return {
      title: '遗体捐献机构查询',
      path: '/pages/site-guide/site-guide'
    };
  }
})